In a mobile phone, it is important to preserve power as much as possible to maximize battery life. To preserve power, each operating system (“OS”) resident in the mobile phone looks for idle time when there is no processing to be done and attempts to put its associated hardware to “sleep”—i.e., to inactivate the hardware to the extent possible, so that the OS consumes less or no power during that idle time.
OSes in a mobile phone typically control the application stack, the modem, the Wi-Fi, the Bluetooth, the Mobile TV, just to name a selected portion of the applications controlled by OSes in a cell phone. During idle times, such OSes typically perform periodic tasks. Before going idle—“to sleep”—the OSes schedule themselves to wake up for these periodic tasks. These periodic tasks may include, for example, the modem stack checking the paging channel for incoming calls and the user interface (“UI”) OS checking the battery status and updating the clock on the display. Often these tasks are dependent on waking another of the OSes—for example the UI OS may need to wake up the modem OS to get the current mobile signal strength to update the cell phone display.
Under normal usage, these regular wake-up events consume a majority of a mobile phone's battery. A large proportion of that power consumption happens during the actual wake-up and going back to sleep mechanism for each of the processing cores associated with each OS.
Accordingly, any mechanism that can be implemented to reduce this power consumption is desirable.